<link rel="stylesheet" type="text/css" href="/ztree/zTreeStyle.css">
<div th:fragment="roleAssignAuthModal" id="roleAssignAuthModal" class="modal fade" tabindex="-1" role="dialog">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal"
                aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
        <h4 class="modal-title">众筹网系统弹窗</h4>
      </div>
      <div class="modal-body">
        <ul id="treeDemo" class="ztree">
          <!--加载所有权限-->
        </ul>
      </div>
      <div class="modal-footer">
        <button id="roleAssignAuthBtn" type="button" class="btn btn-primary">分配权限</button>
      </div>
    </div>
  </div>
  <script type="text/javascript" src="/ztree/jquery.ztree.all-3.5.min.js"></script>
  <script>

    $(function (){
      //分配权限
      $("#roleAssignAuthBtn").click(function () {
        var authIdArray = new Array();
        // 调用zTreeObj的方法获取当前已经被勾选的节点
        var checkedNodes=$.fn.zTree.getZTreeObj("treeDemo").getCheckedNodes();

        for(var i = 0; i < checkedNodes.length; i++) {
          // 获取具体的一个节点
          var node = checkedNodes[i];
          // 获取当前节点的id属性
          var authId = node.id;
          // 将authId存入数组
          authIdArray.push(authId);
        }
        var requestBody = {"roleIdList":[window.roleId], "authIdList": authIdArray};

        // 发送请求
        $.ajax({
          "url": "/assign/do/assign",
          "type": "post",
          "data": JSON.stringify(requestBody),
          "contentType": "application/json;charset=UTF-8",
          "dataType": "json",
          success:function (ajaxResult) {
            if(ajaxResult.result == "SUCCESS") {
              layer.msg("操作成功！");
            }

            if(ajaxResult.result == "FAILED") {
              layer.msg(ajaxResult.message);
            }
            $("#roleAssignAuthModal").modal("hide");
          }
        });




      });

    })


    //初始化zTree
    function initWholeTree(){
      var setting = {
        "data": {
          "simpleData": {
            "enable": true,
            "pIdKey": "categoryId"
          },
          "key": {
            "name": "title"
          }
        },
        "check": {
          "enable": true,
          "chkboxType":  { "Y": "", "N": "" }

        }
      };

      // 2.获取JSON数据
      $.ajax({
        "url": "/assign/get/all/auth",
        "type": "post",
        "dataType": "json",
        success:function (ajaxResult) {
          if(ajaxResult.result == "FAILED") {
            layer.msg(ajaxResult.message);
            return ;
          }
          var zNodes = ajaxResult.data;
          // 3.初始化树形结构
          $.fn.zTree.init($("#treeDemo"), setting, zNodes);
          //展开所有节点
          $.fn.zTree.getZTreeObj("treeDemo").expandAll(true);

          //回显已分配权限
          goBackAuth();
        }
      });
    }

    //回显已分配权限
    // function goBackAuth() {
    //   ajaxResult = $.ajax({
    //     "url": "/assign/get/assigned/auth/id/list",
    //     "type": "post",
    //     "data": {
    //       "roleId": window.roleId,
    //       "random": Math.random()
    //     },
    //     "dataType": "json",
    //     success:function (ajaxResult) {
    //       if(ajaxResult.result == "FAILED") {
    //         layer.msg(ajaxResult.message);
    //         return ;
    //       }
    //
    //       var authIdList = ajaxResult.data;
    //
    //       // 6.使用authIdList勾选对应的树形节点
    //       // ①遍历authIdList
    //       for (var i = 0; i < authIdList.length; i++) {
    //         // ②在遍历过程中获取每一个authId
    //         var authId = authIdList[i];  //1
    //
    //         // ③根据authId查询到一个具体的树形节点
    //         // key：查询节点的属性名
    //         // value：查询节点的属性值，这里使用authId
    //         var key = "id";
    //
    //         var treeNode = $.fn.zTree.getZTreeObj("treeDemo").getNodeByParam("id", authId);
    //
    //         // ④勾选找到的节点
    //         // treeNode：当前要勾选的节点
    //         // true：表示设置为勾选状态
    //         // false：表示不联动
    //         $.fn.zTree.getZTreeObj("treeDemo").checkNode(treeNode, true, false);
    //       }
    //     }
    //   });
    // }

    //回显已分配权限
    function goBackAuth() {
      ajaxResult = $.ajax({
        "url": "/assign/get/assigned/auth/id/list",
        "type": "post",
        "data": {
          "roleId": window.roleId,
          "random": Math.random()
        },
        "dataType": "json",
        success:function (ajaxResult) {
          if(ajaxResult.result == "FAILED") {
            layer.msg(ajaxResult.message);
            return ;
          }

          var authIdList = ajaxResult.data;

          // 6.使用authIdList勾选对应的树形节点
          // ①遍历authIdList
          for (var i = 0; i < authIdList.length; i++) {
            // ②在遍历过程中获取每一个authId
            var authId = authIdList[i];  //1

            // ③根据authId查询到一个具体的树形节点
            // key：查询节点的属性名
            // value：查询节点的属性值，这里使用authId
            var key = "id";

            var treeNode = $.fn.zTree.getZTreeObj("treeDemo").getNodeByParam("id", authId);

            // ④勾选找到的节点
            // treeNode：当前要勾选的节点
            // true：表示设置为勾选状态
            // false：表示不联动
            $.fn.zTree.getZTreeObj("treeDemo").checkNode(treeNode, true, false);
          }
        }
      });
    }


  </script>
</div>
